from django.conf import settings
from .llm_factory import LLMFactory

class MovieChatbotService:
    """电影聊天机器人服务"""
    
    def __init__(self):
        self.llm_service = LLMFactory.get_llm_service()
        self.system_prompt = """
        你是一个专业的电影推荐助手，帮助用户发现他们可能喜欢的电影。
        
        你可以:
        1. 根据用户描述的喜好、心情或场景推荐电影
        2. 回答关于电影的问题
        3. 提供电影分析和见解
        
        在推荐电影时，尽量提供多样化的选择，并解释推荐理由。保持友好、专业的语气。
        """
    
    def get_response(self, user_message, conversation_history=None):
        """
        获取聊天机器人对用户消息的回复
        
        Args:
            user_message (str): 用户发送的消息
            conversation_history (list): 之前的对话历史
            
        Returns:
            str: 聊天机器人的回复
        """
        # 如果没有提供对话历史，初始化为空列表
        if conversation_history is None:
            conversation_history = []
        
        # 构建消息列表
        messages = [
            {"role": "system", "content": self.system_prompt}
        ]
        
        # 添加对话历史
        for msg in conversation_history:
            messages.append(msg)
        
        # 添加用户当前消息
        messages.append({"role": "user", "content": user_message})
        
        try:
            response = self.llm_service.chat_completion(
                messages=messages,
                temperature=0.7,
                max_tokens=800
            )
            
            if response['status'] == 'success':
                return response['content']
            else:
                return "抱歉，我现在无法回答您的问题。请稍后再试。"
                
        except Exception as e:
            print(f"聊天机器人API调用出错: {str(e)}")
            return "抱歉，我现在无法回答您的问题。请稍后再试。" 